package com;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.core.annotation.Order;

import javax.comm.*;

@SpringBootApplication
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}



	@Bean
	@Order(value = 1)
	public SerialPort serialPort(){
		CommPortIdentifier portId;
		SerialPort serialPort = null;
		try {
			portId = CommPortIdentifier.getPortIdentifier("COM200");
			/**
			 * open方法打开通讯端口，获得一个CommPort对象。它使程序独占端口。
			 * 如果端口正被其他应用程序占用，将使用 CommPortOwnershipListener事件机制，传递一个PORT_OWNERSHIP_REQUESTED事件。
			 * 每个端口都关联一个 InputStream 和一个OutputStream。
			 * 如果端口是用open方法打开的，那么任何的getInputStream都将返回相同的数据流对象，除非有close 被调用。
			 * 有两个参数，第一个为应用程序名；第二个参数是在端口打开时阻塞等待的毫秒数。
			 */
			serialPort = (SerialPort) portId.open("SimpleReadApp", 2000);

            /*设置串口初始化参数，依次是波特率，数据位，停止位和校验*/
			serialPort.setSerialPortParams(115200,
					SerialPort.DATABITS_8,
					SerialPort.STOPBITS_1,
					SerialPort.PARITY_NONE);
		}catch (PortInUseException e) {

		}catch (UnsupportedCommOperationException e) {

		} catch (NoSuchPortException e) {
			e.printStackTrace();
		}
		return serialPort;
	}

	/*@Bean
	@Order(value = 0)
	public SerialPortEventListener serialPortEventListener(){
		return new SerialListener();
	}*/
}
